home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-01 | 3.6 KB | 77 lines | [TEXT/GEOL] |
- Item 7419470 27-Feb-91 17:59PST
-
- From: SATORI Satori SW, Hugh Rogovy,PRT
-
- To: MACAPP.TECH$ MacApp Technical
-
- ------------------------------------------------------------------------------
-
- Sub: Re: RE>> MA3 opinion
-
- James,
-
- In a reply to my link, you state:
-
- >>I am confused.
-
- Don't be confused.
-
- Making a change to a superclass many times will affect the behaviour of
- subclasses. This doesn't seem to happen as much with something like the
- toolbox, because it contains(mostly) independent, stand-alone
- procedures...there is no inheritance of behaviour. There are far less
- interrelations between Toolbox procedures than there are between inherited
- methods in OP.
-
- The problem comes when superclass changes cause a negative behaviour change in
- a subclass. Many superclass modifications that caused negative behaviour
- changes can be seen in TechNote #280. A specific example (of many) are the
- modifications to TView focusing and visiblility methods. These changes
- resulted in *numerous* changes to the TView descendents in MacApp...and even
- more changes to TView descendents in our four apps.
-
- Luckily, drastic design changes such as the above-mentioned are the exception
- rather than the rule. But, for as long as the MacApp team continues to come up
- with better ways to implement superclasses and accompanying methods (which I
- hope they continue to do forever...), there can be the problem of superclass
- modifications causing negative changes to subclass behaviour. Sometimes, these
- behaviour changes are not apparent until a user performs "some ridiculously
- stupid sequence of operations that should never have been affected by the MA
- change anyway...". In the real world, this causes a shipping app to drop back
- to beta status...meaning that we "get" to go through an extensive re-testing
- process to get the app back to shipping status...no fun. Our other option is
- to use a non-supported and fewer feature version of MacApp on all current and
- future apps (we have a large in-house class/utility library that is MacApp
- dependent).
-
- >>If so, I am eager to see your evidence, as such evidence would also refute
- >>that the claim the OOP code is more maintainable than that derived from
- >>structured programming.
-
- I'm not interested in refuting anyone's claims...I just think that for as long
- as there are changes being made to superclasses, subclasses will find their
- behaviours changing in strange and wonderful (and sometimes not so wonderful)
- ways. Procedural libraries (ie. the Toolbox) do not have this problem to such
- a great extent due to the usual lack of interdependence between procedures.
-
- I do believe in the OOP way if life and most of the claims that go along with
- it. I believe O-O *code* is more maintainable...I think it can be argued that
- O-O *libraries* are more difficult to maintain. Library maintainers (ie. the
- MacApp team) have a very difficult job... when it comes time for library
- modifications they have to make an attempt to imagine every possible way
- (within reason) that I may have extended their framework. App maintainers (ie.
- you and me) have the benefit of access to *all* of the code their app is built
- of.
-
- An O-O library can be maintained...If your cards do fall right, design and code
- changes will have no effect or positive effects upon the behaviour of
- subclasses. This is what I would like to see happen in the future with MacApp.
- I don't know how this can be accomplished, but I feel that I and others could
- benefit if Apple looked into finding a way to make MacApp updates less of a
- headache.
-
-
-
- Chris Le Croy
-
-